package com.vf.admin.client.service;

import com.vf.admin.common.splitpage.SplitPageBean;
import com.vf.admin.miaodong.entity.AppRoom;
import com.vf.admin.miaodong.entity.AppRoomType;
import com.vf.admin.miaodong.entity.AppUser;

import java.math.BigDecimal;
import java.util.List;

public interface AppRoomService {

    public List<AppRoomType> getRoomAllCat(Integer xingzhi);


    public List<AppRoom> getSearch(String sousuo,SplitPageBean page);


    public List<AppRoom> roomTuiJianList(Integer type, SplitPageBean page);

    /**
     * 根据roomcode获取房间信息
     *
     * @param roomcode
     * @return
     * @xzx
     */
    public AppRoom getRoomCode(String roomcode);
    /**
     * 根据txcode获取房间信息
     *
     * @param txcode
     * @return
     * @xzx
     */
    public AppRoom getTxCode(Integer txcode);

    /**
     * 根据类型&分类获取房间
     *
     * @param splitPageBean 分业
     * @param xingzhi       房间性质
     * @return
     * @xzx
     */
    public List<AppRoom> getTypeRoomList(Integer xingzhi, SplitPageBean splitPageBean);
    /**
     * 获取正常的全部房间
     * @return
     */
    public List<AppRoom> getRoomAll();

    public List<AppRoom> getRoomFiveMinute();
 /**
     * 获取批量房间
     * @return
     */
    public List<AppRoom> getPiliang(String arr);

    public AppRoom getById(Integer id);

    /**
     * 查询用户开通的房间详情信息
     *
     * @param userid
     * @return
     */
    public AppRoom getUserId(Integer userid);

    /**
     * 更改房间封面
     *
     * @Param: [roomcode 房间code,img 封面图]
     * @return: void
     * @Author: zhouyunyi
     * @Date: 2021/07/2
     * @Time: 15:01
     */
    void uproomimg(Integer roomid, String img);

    /**
     * 更改房间标签类型
     *
     * @Param: [roomcode 房间code, roomtypeid 类型id, roomtypename 类型名称, xingzhi 性质]
     * @return: void
     * @Author: zhouyunyi
     * @Date: 2021/07/2
     * @Time: 15:46
     */
    void uproomtype(Integer roomid, Integer roomtypeid, String roomtypename, Integer xingzhi);

    /**
     * 更改房间标题
     *
     * @Param: [roomcode 房间code, roomname 房间标题]
     * @return: void
     * @Author: zhouyunyi
     * @Date: 2021/07/2
     * @Time: 15:56
     */
    public void uproomname(Integer roomid, String roomname);


    /**
     * @Description 礼物特效开关
     * @Param: [roomid 房间id, leixing]
     * @return: void
     * @Author: ljx
     * @Date: 2021/07/3
     */
    public void updateliwutexiao(Integer roomid, Integer leixing);


    /**
     * @Description 进房提示开关
     * @Param: [roomid 房间id, leixing]
     * @return: void
     * @Author: ljx
     * @Date: 2021/07/3
     */
    public void updatejinfangtishi(Integer roomid, Integer leixing);

    /**
     * @Description 更新房间开关状态 密码
     * @Param: [roomid 房间id, leixing]
     * @return: void
     * @Author: ljx
     * @Date: 2021/07/3
     */
    public void updateroomkaiguan(Integer roomid, Integer leixing, String pass);

    /**
     * @Description 更新房间公告
     * @Param: [roomid 房间id, gonggao 公告]
     * @return: void
     * @Author: ljx
     * @Date: 2021/07/3
     */
    public void updateroomgonggao(Integer roomid, String gonggao);
    /**
     * @Description 更新房间直播状态
     * @Param: [roomid 房间id, zaixian 在线状态   1开播 2未开播 ]
     * @return: void
     * @Author: xzx
     * @Date: 2021/07/3
     */
    public void updateRoomZhiboState(Integer roomid, Integer zaixian);

     /**
     * 更换房间背景图
     *
     * @Param: [roomid 房间id, roombeijing 背景图, roombeiimgid 背景图id]
     * @return: void
     * @Author: zhouyunyi
     * @Date: 2021/07/3
     * @Time: 10:55
     */
    void uproombeijing(Integer roomid, String roombeijing, Integer roombeiimgid);

    /**
     * 保存
     */
    void save(AppRoom room);


    /**
     * @param user      用户对象
     * @param leixing   房间类型  1语音直播   2视频直播
     * @param roomtype  房间标签id
     * @param roomtitle 房间标题/房间名
     * @param image     房间封面
     * @param gonggao   房间 公告
     * @param beijing   房间背景id
     * @return
     */
    boolean creatRoom(AppUser user, Integer leixing, String roomtitle, String image, String gonggao, Integer beijing, Integer pmleixing,String lon,String lat);

    /**
     * 腾讯创建房间
     *
     * @param user 用户对象
     * @param room 房间
     * @return
     */
    boolean txCreatRoom(AppUser user, AppRoom room);


    //更新房间位置
    public void updateroomshi(Integer roomid, String shi);

    /**
     * 加入粉丝团
     */
    public boolean joinTheFanClub(AppUser user, BigDecimal fensituan, AppRoom room);


    public List<AppRoom> getByNearbyUser(String lon, String lat, SplitPageBean splitPageBean);

}
